<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        div {
            width: 100px;
            height: 100px;
            background-color: springgreen;

            /* 如果我们想要让盒子给动起来,那么需要给盒子添加一个定位 */
            position: absolute;
            top: 0;
            left: 0;
        }
    </style>
</head>

<body>
    <div></div>
    <script>
        /* 
            目的: 让盒子进行丝滑的移动
                1. 移动的距离是多长                 400px
                2. 移动的步子是多少                 5px
                3. 移动盒子是通过定时器来进行移动的  setInterval
        */
        const box = document.querySelector("div")
        box.onclick = function () {
            /* 
                最开始的位置 0 
                通过定时器进行移动
                    每移动一次+=5px
                    最终移动到400px的时候,停止定时器
            */
            //最开始的位置是0
            let current = 0;
            let timer = setInterval(() => {
                //定时器每循环一次,那么就移动5px
                current += 5;
                //让盒子动起来
                this.style.left = current + "px"
                //盒子的位置>=终点的位置的时候,停止定时器
                //停止定时器,需要给定时器取一个名字
                if(current === 400){
                    clearInterval(timer)
                    //最好释放空间
                    timer = null;
                }
            }, 16);
        }
    </script>
</body>

</html>